# 字符串、列表、元组 都支持切片操作
# 序列[开始位置下标 : 结束位置下标 : 步长]
str1 = 'abcdefg'

# 得到整个字符串数据
print(str1)

# 下标得到的是下标为某个数字的数据
print(str1[2])

print(str1[2:5:1]) # cde
print(str1[2:5]) # cde
print(str1[2:5:2]) # ce
print(str1[:2]) # ab -- 如果不写开始，默认从 0 开始选取
print(str1[2:]) # cdefg -- 如果不写结束，表示选取到最后
print(str1[:]) # abcdefg

# 负数测试
print(str1[::-1]) # gfedcba -- 如果步长为负数，表示倒叙选取
print(str1[-4:-1]) # def -- 下标-1表示最后一个数据，以此向前类推
# print(str1[-4:-1:-1]) # 不能选取数据：从-4开始到-1结束，选取方向从左到右，但-1步长，从右到左
# ***** 如果选取方向（下标开始到结束的方向）和步长的方向冲突，则无法选取数据
print(str1[-1:4:-1]) # gf